#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main()
{
    close(1);

    int n=printf("stdin->fd:%d\n",stdin->_fileno);
    printf("stdout->fd:%d\n",stdout->_fileno);
    printf("stderr->fd:%d\n",stderr->_fileno);
   
    fprintf(stderr,"ret : %d\n",n);
    //char buffer[1024];
    ////现在读出来的是字节，不是字符串
    //ssize_t s=read(0,buffer,sizeof(buffer));
    //if(s<0)return 1;
    //buffer[s]='\0';
    ////c语言要把读出来的信息当成字符串，所以要加\0
    //printf("echo : %s\n",buffer);
    ////const char*msg="hello linux!\n";
    ////write(1,msg,strlen(msg));
    ////write(2,msg,strlen(msg));

    return 0;
}
//int main()
//{
//    //umask(0000);
//    //int fd=open("log.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);
//    int fd1=open("log1.txt",O_WRONLY|O_CREAT|O_APPEND,0666);
//    int fd2=open("log2.txt",O_WRONLY|O_CREAT|O_APPEND,0666);
//    int fd3=open("log3.txt",O_WRONLY|O_CREAT|O_APPEND,0666);
//    int fd4=open("log4.txt",O_WRONLY|O_CREAT|O_APPEND,0666);
//    if(fd1<0)
//    {
//        printf("open fail!\n");
//        return 1;
//    }
//    printf("fd1:%d\n",fd1);
//    printf("fd2:%d\n",fd2);
//    printf("fd3:%d\n",fd3);
//    printf("fd4:%d\n",fd4);
//    // const char*msg="aaa";
//    // write(fd,msg,strlen(msg));//不需要+1
//    // close(fd);
//    return 0;
//}

//#define ONE (1<<0)  //1左移0位 1
//#define TWO (1<<1)  //1左移1位 2
//#define THREE (1<<2)//1左移2位 4
//#define FOUR (1<<3) //1左移3位 8
//
//void show(int flags)
//{
//    if(flags&ONE)printf("hello funtion1\n");
//    if(flags&TWO)printf("hello funtion2\n");
//    if(flags&THREE)printf("hello funtion3\n");
//    if(flags&FOUR)printf("hello funtion4\n");
//}
//
//int main()
//{
//    printf("---------------------\n");
//    show(ONE);
//    printf("---------------------\n");
//    show(TWO);
//    printf("---------------------\n");
//    show(ONE|TWO);
//    printf("---------------------\n");
//    show(ONE|TWO|THREE);
//    printf("---------------------\n");
//    show(ONE|THREE);
//    printf("---------------------\n");
//    show(THREE|FOUR);
//
//    return 0;
//}


//int main()
//{
//    //chdir("/home/lll");
//    printf("Pid:%d\n",getpid());
//    //打开文件的路径和文件名，如果前面没有带路径就是默认的log.txt,
//    //或者在Linux中./log.txt，表示默认在当前路径下新建一个文件
//    //带了路径就去指定路径下创建，当前路径指cwd
//    FILE*fp=fopen("log.txt","a");
//    if(fp==NULL)
//    {
//        perror("fopen");
//        return 1;
//    }
//    const char*msg="abcd\n";
//    //这里的strlen(msg)要不要+1，为什么？
//    //不要！字符串以\0结尾，是c语言的规定，和文件没有关系。
//    //fwrite(msg,strlen(msg),1,stdout);
//    fprintf(stdout,"%s:%d\n",msg,1234);
//    fclose(fp);
//    //sleep(1000);
//    return 0;
//}
